package com.ruoyi.hotel.mapper;

import com.ruoyi.hotel.domain.HlRoomDevice;
import com.ruoyi.hotel.domain.dto.HlRoomDeviceDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 房间设备Mapper接口
 * 
 * @author ruoyi
 * @date 2022-12-10
 */
public interface HlRoomDeviceMapper 
{
    /**
     * 查询房间设备
     * 
     * @param id 房间设备主键
     * @return 房间设备
     */
    public HlRoomDevice selectHlRoomDeviceById(Integer id);

    /**
     * 查询房间设备
     *
     * @param roomTypeId 房间设备主键
     * @return 房间设备
     */
    public HlRoomDevice selectHlRoomDeviceByRoomTypeId(Integer roomTypeId);

    /**
     * 查询房间设备列表
     * 
     * @param hlRoomDevice 房间设备
     * @return 房间设备集合
     */
    public List<HlRoomDevice> selectHlRoomDeviceList(HlRoomDevice hlRoomDevice);

    /**
     * 查询房间类型列表根据房间类型id
     *
     * @param roomTypeNameId 房间设备
     * @return 房间设备集合
     */
    public HlRoomDevice selectHlRoomDeviceByRoomTypeNameId(Integer roomTypeNameId);

    /**
     * 新增房间设备
     *
     * @param hlRoomDevice 房间设备
     * @return 结果
     */
    public int insertHlRoomDevice(HlRoomDevice hlRoomDevice);

    /**
     * 修改房间设备
     *
     * @param hlRoomDevice 房间设备
     * @return 结果
     */
    public int updateHlRoomDevice(HlRoomDevice hlRoomDevice);

    /**
     * 删除房间设备
     * 
     * @param id 房间设备主键
     * @return 结果
     */
    public int deleteHlRoomDeviceById(Integer id);

    /**
     * 批量删除房间设备
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHlRoomDeviceByIds(Integer[] ids);

    /**
     * 设置状态为0
     *
     * @param roomDevice 主键
     * @return 结果
     */
    public int updateHlRoomDeviceStateIsZeroById(HlRoomDevice roomDevice);

    /**
     * 批量设置状态为0
     *
     * @param updateBy,ids 主键
     * @return 结果
     */
    public int updateHlRoomDeviceStateIsZeroByIds(@Param("updateBy") String updateBy, @Param("ids") Integer[] ids);

    /**
     * 修改数据根据房间类型id和状态
     *
     * @param roomDevice 主键
     * @return 结果
     */
    public int updateHlRoomDeviceByRoomTypeIdAndStateIsOne(HlRoomDevice roomDevice);

}
